//
//  YFHud.h
//  project
//
//  Created by yefei on 2019/4/11.
//  Copyright © 2019 健健. All rights reserved.
//

#import <Foundation/Foundation.h>


NS_ASSUME_NONNULL_BEGIN

@interface YFHud : NSObject


#pragma mark - Class Methods 显示菊花

/**
 显示菊花 Progress
 默认显示在当前控制器的 View 上
 
 @param text 加载提示语 如：加载中...
 */
+ (void)showProgress:(NSString *)text;

/**
 显示菊花 Progress
 默认显示在当前控制器的 View 上
 开启交互
 
 @param text 加载提示语 如：加载中...
 */
+ (void)showProgressWithInteraction:(NSString *)text;

/**
 显示菊花 Progress，显示在 KeyWindow 上
 
 @param text 加载提示语 如：加载中...
 */
+ (void)showProgressInWindow:(NSString *)text;

/**
 显示菊花 Progress，显示在 KeyWindow 上
 开启交互
 
 @param text 加载提示语 如：加载中...
 */
+ (void)showProgressInWindowWithInteraction:(NSString *)text;

/**
 显示菊花，指定显示 View
 
 @param text 加载提示语 如：加载中...
 @param view 指定的 View
 */
+ (void)showProgress:(NSString *)text inView:(UIView *)view;

/**
 显示菊花，指定显示 View
 开启交互
 
 @param text 加载提示语 如：加载中...
 @param view 指定的 View
 */
+ (void)showProgressWithInteraction:(NSString *)text inView:(UIView *)view;


#pragma mark - Class Methods 显示成功信息

/**
 显示成功信息
 默认显示在 当前控制器的 View 上
 默认显示1.5秒
 默认关闭交互
 
 @param text 成功提示语，如：Success!
 */
+ (void)showSuccess:(NSString *)text;

/**
 显示成功信息
 默认显示在 当前控制器的 View 上
 默认显示1.5秒
 默认关闭交互
 
 @param text 成功提示语，如：Success!
 */
+ (void)showSuccess:(NSString *)text dismissAfter:(NSTimeInterval)seconds;

/**
 显示成功信息 显示在 KeyWindow 上
 默认关闭交互
 
 @param text 成功提示语，如：Success!
 */
+ (void)showSuccessInWindow:(NSString *)text;

/**
 显示成功信息 显示在 KeyWindow 上
 默认显示1.5秒
 默认关闭交互
 
 @param text 成功提示语，如：Success!
 @param seconds 多少秒消失
 */
+ (void)showSuccessInWindow:(NSString *)text dismissAfter:(NSTimeInterval)seconds;

/**
 显示成功信息，指定显示 View
 默认显示1.5秒
 默认关闭交互
 
 @param text 成功提示语，如：Success!
 @param view 指定的 View
 */
+ (void)showSuccess:(NSString *)text inView:(UIView *)view;

/**
 显示成功信息，指定显示 View
 默认关闭交互
 
 @param text 成功提示语，如：Success!
 @param view 指定的 View
 @param seconds 多少秒消失
 */
+ (void)showSuccess:(NSString *)text inView:(UIView *)view dismissAfter:(NSTimeInterval)seconds;

#pragma mark - Class Methods 显示错误
/**
 显示错误信息
 默认显示在当前控制器的 View 上
 默认1.5秒后消失
 默认关闭交互
 
 @param text 错误提示语，如：加载失败！
 */
+ (void)showError:(NSString *)text;
/**
 显示错误信息
 默认显示在当前控制器的 View 上
 默认关闭交互
 
 @param text 错误提示语，如：加载失败！
 @param seconds 多少秒消失
 */
+ (void)showError:(NSString *)text dismissAfter:(NSTimeInterval)seconds;

/**
 显示错误信息，显示在 KeyWindow 上
 默认关闭交互
 
 @param text 错误提示语，如：加载失败！
 */
+ (void)showErrorInWindow:(NSString *)text;

/**
 显示错误信息，显示在 KeyWindow 上
 默认关闭交互
 
 @param text 错误提示语，如：加载失败！
 @param seconds 多少秒消失
 */
+ (void)showErrorInWindow:(NSString *)text dismissAfter:(NSTimeInterval)seconds;

/**
 显示错误信息 指定显示 View
 默认1.5秒后消失
 默认关闭交互
 
 @param text 错误提示语，如：加载失败！
 @param view 指定的 View
 */
+ (void)showError:(NSString *)text inView:(UIView *)view;

/**
 显示错误信息 指定显示 View
 默认关闭交互
 
 @param text 错误提示语，如：加载失败！
 @param view 指定的 View
 @param seconds 多少秒消失
 */
+ (void)showError:(NSString *)text inView:(UIView *)view dismissAfter:(NSTimeInterval)seconds;

#pragma mark - Message消息
/**
 显示 message 信息
 默认显示在 当前控制器的 View 上
 默认1.5后消失
 
 @param message 信息 如：您需要验证手机号
 */
+ (void)showMessage:(NSString *)message;

/**
 显示 message 信息
 默认显示在 当前控制器的 View 上
 
 @param message 信息 如：您需要验证手机号
 @param seconds 多少秒后消失
 */
+ (void)showMessage:(NSString *)message dismissAfter:(NSTimeInterval)seconds;

/**
 显示 message 信息 显示在 KeyWindow 上
 默认关闭交互
 默认1.5后关闭
 
 @param message 信息 如：您需要验证手机号
 */
+ (void)showMessageInWindow:(NSString *)message;

/**
 显示 message 信息 显示在 KeyWindow 上
 默认关闭交互
 
 @param message 信息 如：您需要验证手机号
 @param seconds 多少秒后消失
 */
+ (void)showMessageInWindow:(NSString *)message dismissAfter:(NSTimeInterval)seconds;

/**
 显示 message 信息 指定显示 View
 默认关闭交互
 
 @param message 信息 如：您需要验证手机号
 @param view 指定的 view
 */
+ (void)showmessage:(NSString *)message inView:(UIView *)view;

/**
 显示 message 信息 指定显示 View
 默认关闭交互
 
 @param message 信息 如：您需要验证手机号
 @param view 指定的 view
 @param seconds 多少秒消失
 */
+ (void)showMessage:(NSString *)message inView:(UIView *)view dismissAfter:(NSTimeInterval)seconds;

#pragma mark - Class Methods 消失
/**
 消失
 */
+ (void)dismiss;

/**
 带动画的消失
 */
+ (void)dismissAnimated;

#pragma mark - Class Methods 消失回调
/**
 消失回调

 @param dismissedAction 回调 Block
 */
+  (void)dismissedAction:(void(^)(void))dismissedAction;


@end

NS_ASSUME_NONNULL_END
